Multi-User Alpha Anywhere Applications

Description

This topic is a collection of recommendations by experienced Alpha Anywhere developers about the best way to create multi-user applications. The following is a diagram of an "optimal" multi-user architecture. The most critical point is the distinction between the computers with real databases and shadow databases.

images/Network_Architecture.gif
  • Shared folders

    • Comment

      Make sure that the folders for the shared databases are shared for full control by all users. Define the drive letters and folder names of the shared folders using addin variables in the autoexec scripts. This provides a common variable pointing to proper paths. If you ever need to move your tables, then all you need to do is to change the reference in one place. Place shadow databases in subfolders in the shadow folder within the a5v5runtime folder.

      When Alpha Anywhere updates a shadow database, it does not create new subfolders.
  • Minimizing Network Overhead

    • Comment

      Use Shadow Databases and Lightning Query Optimization. For more thoughts from Jim Chapman, see Minimizing Network Overhead.

  • Development

    • Comment

      It is a good idea to take backup "snapshots" at frequent stages of the development.

  • Maintenance

    • Comment

      • Know how to distribute A5 patches to all workstations.

      • Install the real and the shadow databases in the same-named directory on every workstation.

      • Know how to produce a shadow refresh: both a system-side method as well as a single-workstation method.

  • Administration

    • Comment

      These are just a few issues to consider from someone who has built a large multi-user database:

      • Who will maintain the network?

      • Who will set and maintain security for users?

      • What level of access will users have?

      • If you are a remote developer, how do you plan on getting into the system from where you are?

      • If the system is up and running all day, when do you schedule routine maintenance tasks?

      • How strong is your server, does it require a lot of hands-on babysitting?

      • If there is more than one database, which one or ones get shadowed on different machines?

  • Unique IDs

    • Comment

      Most applications need to generate unique record IDs. Some developers prefer to generate their own unique numbers, rather than using the autonumber feature of field rules. Peter Wayne suggests a comprehensive solution in this article: Program your own Autoincrement field.

Thanks To

Russ Boehle, Tom Cone Jr., Thomas Henkel, Barry Rochford, Peter Wayne, Steve Workings

See Also